package com.tengju.data.domain.model.clickhouse.crm;

import com.tengju.data.domain.model.analysis.Row;
import com.tengju.data.domain.model.cqrs.CrmActivityAnalysisQO;
import com.tengju.data.domain.model.cqrs.CrmActivityCompleteValueQO;

import java.util.List;

/**
 * @author chenhang
 * @Date 2021/12/29
 */
public interface CrmActivityAnalysisRepository {

    List<Row> secTargetReachTable(CrmActivityAnalysisQO qo);

    List<Row> directorTargetReachTable(CrmActivityAnalysisQO qo);

    List<Row> dealerTargetReachTable(CrmActivityAnalysisQO qo);

    List<Row> serviceProviderTargetReachTable(CrmActivityAnalysisQO qo);

    List<Row> transformFunnel(CrmActivityAnalysisQO qo);

    List<Row> activityTransformFunnel(CrmActivityAnalysisQO qo);

    List<Row> departmentRankTable(CrmActivityAnalysisQO qo);

    List<Row> secRankTable(CrmActivityAnalysisQO qo);

    List<Row> directorRankTable(CrmActivityAnalysisQO qo);

    List<Row> activityCompleteTotal(CrmActivityCompleteValueQO qo);

    List<Row> addcartGoodsRankTable(CrmActivityAnalysisQO qo);

    List<Row> moneyoutRankTable(CrmActivityAnalysisQO qo);

    List<Row> dealerRankTable(CrmActivityAnalysisQO qo);

    List<Row> overview(CrmActivityAnalysisQO qo);

    List<Row> overviewTable(CrmActivityAnalysisQO qo);

    List<Row> subjectNameList(Long activityId, Integer activityType);

    int countSecTargetReachTable(CrmActivityAnalysisQO qo);

    int countServiceProviderTargetReachTable(CrmActivityAnalysisQO qo);

    int countDealerTargetReachTable(CrmActivityAnalysisQO qo);

    int countDirectorTargetReachTable(CrmActivityAnalysisQO qo);

}
